1. Field of the Invention
The present invention relates to a program controlling method in a form of processing a plurality of programs in a coordinated manner, and an apparatus having the same.
More particularly, it relates to a program controlling method for implementing a system which requires a mechanism to cause a client to execute a request from a server or provide a new function to the client in a database system implemented as a server-client system, and an apparatus having the same.
2. Related Background Art
Recently, in a process of developing a complicated application program such as a DTP system or a drawing tool (picture drawing program), problems have been raised in that the programming is complex, the program becomes huge and switching depending on the situation is difficult to attain. In the prior art, the following methods have been proposed to solve those problems.
Object oriented database system (for example, an object oriented database system described in The Object Store Database System, CACM Vol. 10, pp50-63 (Oct. 1991)). It is a system which applies the concept of the object oriented database to a database system. A mechanism required when data having a complex structure is shared among a plurality of programs (for example, data persistency, parallel access control, version management) is provided. It can relieve the complexity of the programming which occurs in realizing the data sharing by the object oriented database system.
Dynamic loading/linking (for example, An Approach to Genuine Dynamic Linking, CSE-90-25, 8-1990, Div Computer Science, University of California). It is a mechanism to build in a function during the execution of the program instead of building it in the program during the development of the program. It is usually implemented by building in a module build-in procedure (loading and linking) as a function which can be called by the program during the development of the program. It is used as a mechanism for avoiding the increase of the size of the program and switching the content of process depending on the status. PA1 Shared library (for example, a library which belongs to the Unix System V). A library means one or a group of files of modules which may possibly be shared by a plurality of programs. A shared library means those programs which call procedures in the files when they are executed. It is used as means for preventing the increase of the size of the program. PA1 (1) a consistent operation can be forced to each program, PA1 (2) an optimum processing mechanism which complies with the status thereof can be provided to each program, PA1 (3) a size of each program can be reduced because a functional element may be added from time to time as required, and PA1 (4) the advantages of (1), (2) and (3) may be enjoyed without making the program complex.
However, recently, as an application program such as groupware in which a plurality of programs share data having a very complex structure and program codes which depend on the structure of the data and which requires more complex form of sharing such as coordinated processing has been developed, the following problems are raised.
a. Change notification
For example, when a plurality of windows applications share data and it is required to always reflect the status of the shared data on the display, it is necessary to inform each change of the shared data by one application to other applications.
b. Ownership
In a data management application, particularly where the update of data or the access control is required, it may be required to force an application based on certain convention of the application.
c. Evaporation
In an application which refers the shared data, the data which is shared by a plurality of applications and should be persistently saved after the completion of the application and the temporary data which is inherent to the application and erased at the completion of the application may be mixedly present.
In such a circumstance, when reference information to the temporary data is included in the persistent data, the persistent data holds useless data after the completion of the application because the temporary data is erased at the completion of the application. In many cases, such useless data is interpreted as invalid data which may adversely affect to the application.
In the prior art, however, the plurality of programs share the data of very complex structure and the program codes which depend on the data structure, and the problems raised by the dynamic change of the status during the execution of the programs are not solved.
This is because the object oriented database system provides the centralized management system for the persistent data and it cannot solve the problem of complex distributed data management such as the change notification and the ownership or manage the non-persistent data such as the evaporated data.
Further, the function provided by the shared library is a mechanism for supporting the sharing of the program code which may be decided at the time of preparation of the program that cannot handle the problem which dynamically changes depending on the execution status.
In the dynamic loading/linking, the dynamic addition and execution of the program code may be conducted but it cannot provide a mechanism to manage the sharing of the program code. As a result, the dynamic loading/linking cannot attain the base of coordinated processing by the plurality of programs.